package com.klw.business.service;

import java.util.List;

import com.klw.business.domain.KlmBatchModel;
import com.klw.business.domain.KlwMlFeatures;

/**
 * 机器学习特征Service接口
 * 
 * @author klw
 * @date 2025-08-24
 */
public interface IKlwMlFeaturesService 
{
    /**
     * 查询机器学习特征
     * 
     * @param featureId 机器学习特征主键
     * @return 机器学习特征
     */
    public KlwMlFeatures selectKlwMlFeaturesByFeatureId(Long featureId);

    /**
     * 查询机器学习特征列表
     * 
     * @param klwMlFeatures 机器学习特征
     * @return 机器学习特征集合
     */
    public List<KlwMlFeatures> selectKlwMlFeaturesList(KlwMlFeatures klwMlFeatures);

    /**
     * 新增机器学习特征
     * 
     * @param klwMlFeatures 机器学习特征
     * @return 结果
     */
    public int insertKlwMlFeatures(KlwMlFeatures klwMlFeatures);

    /**
     * 修改机器学习特征
     * 
     * @param klwMlFeatures 机器学习特征
     * @return 结果
     */
    public int updateKlwMlFeatures(KlwMlFeatures klwMlFeatures);

    /**
     * 批量删除机器学习特征
     * 
     * @param featureIds 需要删除的机器学习特征主键集合
     * @return 结果
     */
    public int deleteKlwMlFeaturesByFeatureIds(Long[] featureIds);

    /**
     * 删除机器学习特征信息
     * 
     * @param featureId 机器学习特征主键
     * @return 结果
     */
    public int deleteKlwMlFeaturesByFeatureId(Long featureId);

    /**
     * 根据参数生成特征数据
     *
     * @param klmBatchModel 学生参数
     * @return 结果
     */
    public int generateFeatursDataSingle(KlmBatchModel klmBatchModel);

    /**
     * 根据批量参数生成特征数据
     *
     * @param list 学生参数
     * @return 结果
     */
    public int generateFeatursDataBatch(List<KlmBatchModel> list);
}
